package com.example.zluserservice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.zluserservice.common.base.PageResponse;
import com.example.zluserservice.dto.request.UserReqDTO;
import com.example.zluserservice.dto.response.UserResDTO;
import com.example.zluserservice.entity.User;

import java.util.List;

/**
 * @Author zhenliu（孙凌岳）
 * @Description AI根据设计的数据库表结构生成Service
 * @Date 2025/6/14 12:08
 * @Version 1.0
 */

public interface IUserService extends IService<User> {

    /**
     *  多条件查询用户表分页列表
     * @param userReqDTO 查询条件
     * @param pageNum 页码
     * @param pageSize 每页条数
     * @return Page<User>
     */
    PageResponse<UserResDTO> findUserPage(UserReqDTO userReqDTO, int pageNum, int pageSize);

    /**
     * 测试添加用户和id生成
     * @param user
     */
    void testAdd(User user);

    /**
     * 用户登录 - 根据账号获取用户信息
     * @param username
     * @return
     */
    UserResDTO findUserResDTOForLogin(String username);

    /**
     * 用户新增
     * @param userReqDTO
     * @return
     */
    UserResDTO createUser(UserReqDTO userReqDTO);

    /**
     * 修改用户
     * @param userReqDTO
     * @return
     */
    Boolean updateUser(UserReqDTO userReqDTO);

    /**
     * 根据id删除
     *
     * @param userId
     * @return
     */
    Integer deleteUserById(Long userId);

    /**
     * 重置密码
     * @param userId
     * @return
     */
    Boolean resetPasswords(Long userId);
}
